package com.example.websocketdemo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.*;

@Configuration  // 表明这是一个Spring配置类
@EnableWebSocketMessageBroker  // 启用WebSocket消息代理功能
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    // 注册STOMP端点
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 添加一个"/ws"端点，客户端将通过这个URL建立WebSocket连接
        // withSockJS()表示启用SockJS支持，提供浏览器兼容性
        registry.addEndpoint("/ws").withSockJS();
    }

    // 配置消息代理
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        // 设置应用前缀，客户端发送的消息需要以"/app"开头
        registry.setApplicationDestinationPrefixes("/app");
        registry.enableSimpleBroker("/topic");
        // 启用一个简单的内存消息代理，客户端可以订阅以"/topic"开头的主题
       /* registry.enableStompBrokerRelay("/topic")

                // 设置代理服务器主机地址（RabbitMQ服务器地址）
                .setRelayHost("chuxia")

                // 设置STOMP协议端口（RabbitMQ默认STOMP端口）
                .setRelayPort(61613)

                // 设置客户端登录用户名
                .setClientLogin("guest")

                // 设置客户端登录密码
                .setClientPasscode("guest");
                */
    }

}